﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MiniFox.Infrastructure
{
    /// <summary>
    /// 
    /// </summary>
    public interface ITreeGroup
    {
        /// <summary>
        /// 组ID
        /// </summary>
        object GroupID { get; }
        /// <summary>
        /// 主键字段名
        /// </summary>
        string NodeKey { get; }
        /// <summary>
        /// 父键字段名
        /// </summary>
        string SuperKey { get; }
        /// <summary>
        /// 
        /// </summary>
        string SortKey { get; }
        /// <summary>
        /// 
        /// </summary>
        ITreeNode Tree { get; }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="nodeId"></param>
        /// <returns></returns>
        ITreeNode CreateTreeByNodeID(object nodeId);
        
    }

    ///// <summary>
    ///// 
    ///// </summary>
    //public interface ITreeGroup<T> : ISelfConnectGroup
    //{
    //    /// <summary>
    //    /// 
    //    /// </summary>
    //    TreeNode<T> Tree { get; }
    //    /// <summary>
    //    /// 
    //    /// </summary>
    //    /// <param name="nodeId"></param>
    //    /// <returns></returns>
    //    TreeNode<T> CreateTreeByNodeID(object nodeId);

    //}

    ///// <summary>
    ///// 自联对象组
    ///// </summary>
    //public interface ISelfConnectGroup
    //{
    //    /// <summary>
    //    /// 组ID
    //    /// </summary>
    //    object GroupID { get; }
    //    /// <summary>
    //    /// 主键字段名
    //    /// </summary>
    //    string NodeeKey { get; }
    //    /// <summary>
    //    /// 父键字段名
    //    /// </summary>
    //    string SuperKey { get; }
    //}
}
